home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / fractal.arc / FRACTAL5.BAS < prev    next >
Encoding:
BASIC Source File  |  1985-10-26  |  2.0 KB  |  65 lines

  1. 10 '-----------------------------------
  2. 20 ' FRACTAL CURVE                  DAM
  3. 30 '-----------------------------------
  4. 40  CLS:KEY OFF:OPTION BASE 1
  5. 50  SCREEN 1,1:DEFINT I-R
  6. 60 '----- INPUT PARAMETERS ------------
  7. 70  RESTORE 550
  8. 80  READ NL,DL,AU,SC,IP
  9. 90  DIM A(NL):FOR I=1 TO NL:READ A(I)
  10. 100 A(I)=A(I)*AU*3.141593/180:NEXT I
  11. 110 '----- POSITION THE CURVE ---------
  12. 120 XMAX=.5+SC*.5:XMIN=.5-SC*.5
  13. 130 ON IP GOTO 150,160,170
  14. 140 PRINT "IP>3":END
  15. 150 YMAX=.36*SC:YMIN=-.36*SC:GOTO 180
  16. 160 YMAX=.54*SC:YMIN=-.18*SC:GOTO 180
  17. 170 YMAX=.6*SC:YMIN=-.12*SC
  18. 180 VIEW:WINDOW (XMIN,YMIN)-(XMAX,YMAX)
  19. 190 '----- MAIN ROUTINE ---------------
  20. 200 FOR LEVEL=1 TO 4:CLS
  21. 210 LOCATE 25,1:PRINT "LEVEL=";LEVEL;
  22. 220 XL=DL^LEVEL:NT=NL^LEVEL
  23. 230 PRINT "......";NT;"POINTS"
  24. 240 PSET(0,0):X=0:Y=0:N=0
  25. 250 IF LEVEL=1 THEN BAT=0:GOTO 350
  26. 260 FOR I1=1 TO NL:BA(1)=A(I1)
  27. 270 IF LEVEL=2 THEN 330
  28. 280 FOR I2=1 TO NL:BA(2)=A(I2)
  29. 290 IF LEVEL=3 THEN 330
  30. 300 FOR I3=1 TO NL:BA(3)=A(I3)
  31. 310 IF LEVEL=4 THEN 330
  32. 320 FOR I4=1 TO NL:BA(4)=A(I4)
  33. 330 BAT=0:FOR K=1 TO LEVEL
  34. 340 BAT=BAT+BA(K):NEXT K
  35. 350 FOR J=1 TO NL:CA=BAT+A(J)
  36. 360 X=X+XL*COS(CA):Y=Y+XL*SIN(CA)
  37. 370 N=N+1:LINE -(X,Y):NEXT J
  38. 380 IF N=NT THEN 450
  39. 390 ON LEVEL GOTO 450,430,420,410,400
  40. 400 NEXT I4
  41. 410 NEXT I3
  42. 420 NEXT I2
  43. 430 NEXT I1
  44. 440 '----- CONTINUE? ------------------
  45. 450 LOCATE 1,1
  46. 460 PRINT "ENTER to continue";
  47. 470 I$=INKEY$:IF I$="" THEN 450
  48. 480 IF I$=CHR$(13) THEN NEXT LEVEL
  49. 490 END
  50. 500 '----- END PROGRAM ----------------
  51. 510 '                     SAUSAGE LINK
  52. 520 DATA 8,.25,90,1,1
  53. 530 DATA 0,1,0,-1,-1,0,1,0
  54. 540 '                         PINWHEEL
  55. 550 DATA 10,.2886751,30,1,1
  56. 560 DATA 1,-1,3,-1,-5,-5,-1,3,-1,1
  57. 570 '                        ARROWHEAD
  58. 580 DATA 10,.25,60,1,1
  59. 590 DATA 0,0,2,0,-1,-3,-2,0,1,0
  60. 600 '             HEXAGONAL CONNECTION
  61. 610 DATA 10,.25,60,1,1
  62. 620 DATA 0,1,0,-1,3,3,-1,0,1,0
  63. 630 '
  64. 640 '----- END DATA -------------------
  65.